package ve.usb.crm.hibernate;

import ve.usb.cohesion.runtime.LocalDate;import java.util.HashSet;
import java.util.Set;

public class Cuenta implements java.io.Serializable, ve.usb.cohesion.runtime.Auditable {

    /** Creates a new instance of Cuenta */
    public Cuenta() {}
    
    /**
     * Holds value of property id.
     */
    private Long id;

    /**
     * Getter for property id.
     * @return Value of property id.
     */
    public Long getId() {
        return this.id;
    }

    /**
     * Holds value of property idCuenta.
     */
    private long idCuenta;

    /**
     * Getter for property idCuenta.
     * @return Value of property idCuenta.
     */
    public long getIdCuenta() {
        return this.idCuenta;
    }

    /**
     * Setter for property idCuenta.
     * @param idCuenta New value of property idCuenta.
     */
    public void setIdCuenta(long idCuenta) {
        this.id = this.idCuenta = idCuenta;
    }

    /**
     * Holds value of property contactos.
     */
    private Set<Contacto> contactos = new HashSet<Contacto>();

    /**
     * Getter for property contactos.
     * @return Value of property contactos.
     */
    public Set<Contacto> getContactos() {
        return this.contactos;
    }

    /**
     * Setter for property contactos.
     * @param contactos New value of property contactos.
     */
    public void setContactos(Set<Contacto> contactos) {
        this.contactos = contactos;
    }

    /**
     * Add an element to set property contactos
     * and sets elements's property cuenta.
     * @param element New element to be added to contactos.
     */
    public void addToContactos(Contacto element) {
        element.setCuenta(this);
        contactos.add(element);
    }

    /**
     * Removes and old element from set contactos
     * and sets element's property cuenta to null.
     * @param old The element to be removed from contactos
     */
    public void removeFromContactos(Contacto old) {
        contactos.remove(old);
        old.setCuenta(null);
    }
    /**
     * Holds value of property nombre.
     */
    private String nombre = "";

    /**
     * Getter for property nombre.
     * @return Value of property nombre.
     */
    public String getNombre() {
        return this.nombre;
    }

    /**
     * Setter for property nombre.
     * @param nombre New value of property nombre.
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * Holds value of property telefonoOficina.
     */
    private String telefonoOficina = "";

    /**
     * Getter for property telefonoOficina.
     * @return Value of property telefonoOficina.
     */
    public String getTelefonoOficina() {
        return this.telefonoOficina;
    }

    /**
     * Setter for property telefonoOficina.
     * @param telefonoOficina New value of property telefonoOficina.
     */
    public void setTelefonoOficina(String telefonoOficina) {
        this.telefonoOficina = telefonoOficina;
    }

    /**
     * Holds value of property telefonoFax.
     */
    private String telefonoFax = "";

    /**
     * Getter for property telefonoFax.
     * @return Value of property telefonoFax.
     */
    public String getTelefonoFax() {
        return this.telefonoFax;
    }

    /**
     * Setter for property telefonoFax.
     * @param telefonoFax New value of property telefonoFax.
     */
    public void setTelefonoFax(String telefonoFax) {
        this.telefonoFax = telefonoFax;
    }

    /**
     * Holds value of property tipo.
     */
    private Categoria tipo;

    /**
     * Getter for property tipo.
     * @return Value of property tipo.
     */
    public Categoria getTipo() {
        return this.tipo;
    }

    /**
     * Setter for property tipo.
     * @param tipo New value of property tipo.
     */
    public void setTipo(Categoria tipo) {
        this.tipo = tipo;
    }
    /**
     * Holds value of property sector.
     */
    private Categoria sector;

    /**
     * Getter for property sector.
     * @return Value of property sector.
     */
    public Categoria getSector() {
        return this.sector;
    }

    /**
     * Setter for property sector.
     * @param sector New value of property sector.
     */
    public void setSector(Categoria sector) {
        this.sector = sector;
    }
    /**
     * Holds value of property numeroEmpleado.
     */
    private int numeroEmpleado;

    /**
     * Getter for property numeroEmpleado.
     * @return Value of property numeroEmpleado.
     */
    public int getNumeroEmpleado() {
        return this.numeroEmpleado;
    }

    /**
     * Setter for property numeroEmpleado.
     * @param numeroEmpleado New value of property numeroEmpleado.
     */
    public void setNumeroEmpleado(int numeroEmpleado) {
        this.numeroEmpleado = numeroEmpleado;
    }

    /**
     * Holds value of property ingresosAnuales.
     */
    private double ingresosAnuales;

    /**
     * Getter for property ingresosAnuales.
     * @return Value of property ingresosAnuales.
     */
    public double getIngresosAnuales() {
        return this.ingresosAnuales;
    }

    /**
     * Setter for property ingresosAnuales.
     * @param ingresosAnuales New value of property ingresosAnuales.
     */
    public void setIngresosAnuales(double ingresosAnuales) {
        this.ingresosAnuales = ingresosAnuales;
    }

    /**
     * Holds value of property paginaWeb.
     */
    private String paginaWeb = "";

    /**
     * Getter for property paginaWeb.
     * @return Value of property paginaWeb.
     */
    public String getPaginaWeb() {
        return this.paginaWeb;
    }

    /**
     * Setter for property paginaWeb.
     * @param paginaWeb New value of property paginaWeb.
     */
    public void setPaginaWeb(String paginaWeb) {
        this.paginaWeb = paginaWeb;
    }

    /**
     * Holds value of property direccion.
     */
    private String direccion = "";

    /**
     * Getter for property direccion.
     * @return Value of property direccion.
     */
    public String getDireccion() {
        return this.direccion;
    }

    /**
     * Setter for property direccion.
     * @param direccion New value of property direccion.
     */
    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    /**
     * Holds value of property direccionFacturacion.
     */
    private String direccionFacturacion = "";

    /**
     * Getter for property direccionFacturacion.
     * @return Value of property direccionFacturacion.
     */
    public String getDireccionFacturacion() {
        return this.direccionFacturacion;
    }

    /**
     * Setter for property direccionFacturacion.
     * @param direccionFacturacion New value of property direccionFacturacion.
     */
    public void setDireccionFacturacion(String direccionFacturacion) {
        this.direccionFacturacion = direccionFacturacion;
    }

    /**
     * Holds value of property codigoPostal.
     */
    private int codigoPostal;

    /**
     * Getter for property codigoPostal.
     * @return Value of property codigoPostal.
     */
    public int getCodigoPostal() {
        return this.codigoPostal;
    }

    /**
     * Setter for property codigoPostal.
     * @param codigoPostal New value of property codigoPostal.
     */
    public void setCodigoPostal(int codigoPostal) {
        this.codigoPostal = codigoPostal;
    }

    /**
     * Holds value of property ciudad.
     */
    private String ciudad = "";

    /**
     * Getter for property ciudad.
     * @return Value of property ciudad.
     */
    public String getCiudad() {
        return this.ciudad;
    }

    /**
     * Setter for property ciudad.
     * @param ciudad New value of property ciudad.
     */
    public void setCiudad(String ciudad) {
        this.ciudad = ciudad;
    }

    /**
     * Holds value of property pais.
     */
    private String pais = "";

    /**
     * Getter for property pais.
     * @return Value of property pais.
     */
    public String getPais() {
        return this.pais;
    }

    /**
     * Setter for property pais.
     * @param pais New value of property pais.
     */
    public void setPais(String pais) {
        this.pais = pais;
    }

    /**
     * Holds value of property estado.
     */
    private String estado = "";

    /**
     * Getter for property estado.
     * @return Value of property estado.
     */
    public String getEstado() {
        return this.estado;
    }

    /**
     * Setter for property estado.
     * @param estado New value of property estado.
     */
    public void setEstado(String estado) {
        this.estado = estado;
    }

    /**
     * Holds value of property correoE.
     */
    private String correoE = "";

    /**
     * Getter for property correoE.
     * @return Value of property correoE.
     */
    public String getCorreoE() {
        return this.correoE;
    }

    /**
     * Setter for property correoE.
     * @param correoE New value of property correoE.
     */
    public void setCorreoE(String correoE) {
        this.correoE = correoE;
    }

    /**
     * Holds value of property descripcion.
     */
    private String descripcion = "";

    /**
     * Getter for property descripcion.
     * @return Value of property descripcion.
     */
    public String getDescripcion() {
        return this.descripcion;
    }

    /**
     * Setter for property descripcion.
     * @param descripcion New value of property descripcion.
     */
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    /**
     * Holds value of property comentarios.
     */
    private String comentarios = "";

    /**
     * Getter for property comentarios.
     * @return Value of property comentarios.
     */
    public String getComentarios() {
        return this.comentarios;
    }

    /**
     * Setter for property comentarios.
     * @param comentarios New value of property comentarios.
     */
    public void setComentarios(String comentarios) {
        this.comentarios = comentarios;
    }

    /**
     * Holds value of property respCuenta.
     */
    private Personal respCuenta;

    /**
     * Getter for property respCuenta.
     * @return Value of property respCuenta.
     */
    public Personal getRespCuenta() {
        return this.respCuenta;
    }

    /**
     * Setter for property respCuenta.
     * @param respCuenta New value of property respCuenta.
     */
    public void setRespCuenta(Personal respCuenta) {
        this.respCuenta = respCuenta;
    }
    /**
     * Holds value of property ultimaModificacion.
     */
    private java.util.Date ultimaModificacion;

    /**
     * Getter for property ultimaModificacion.
     * @return Value of property ultimaModificacion.
     */
    public java.util.Date getUltimaModificacion() {
        return this.ultimaModificacion;
    }

    /**
     * Setter for property ultimaModificacion.
     * @param ultimaModificacion New value of property ultimaModificacion.
     */
    public void setUltimaModificacion(java.util.Date ultimaModificacion) {
        if (ultimaModificacion==null || ultimaModificacion instanceof LocalDate)
            this.ultimaModificacion = ultimaModificacion;
        else this.ultimaModificacion = new LocalDate(ultimaModificacion);
    }

    /**
     * Holds value of property fechaCreacion.
     */
    private java.util.Date fechaCreacion;

    /**
     * Getter for property fechaCreacion.
     * @return Value of property fechaCreacion.
     */
    public java.util.Date getFechaCreacion() {
        return this.fechaCreacion;
    }

    /**
     * Setter for property fechaCreacion.
     * @param fechaCreacion New value of property fechaCreacion.
     */
    public void setFechaCreacion(java.util.Date fechaCreacion) {
        if (fechaCreacion==null || fechaCreacion instanceof LocalDate)
            this.fechaCreacion = fechaCreacion;
        else this.fechaCreacion = new LocalDate(fechaCreacion);
    }

    /**
     * Holds value of property esActivo.
     */
    private boolean esActivo;

    /**
     * Getter for property esActivo.
     * @return Value of property esActivo.
     */
    public boolean getEsActivo() {
        return this.esActivo;
    }

    /**
     * Setter for property contactoUsuario.
     * @param esActivo New value of property esActivo.
     */
    public void setEsActivo(boolean esActivo) {
        this.esActivo = esActivo;
    }

    public String toString() {
        return "<Cuenta id='C" + this.id +
      //idCuenta
      //contactos
      "\" nombre =\"" + nombre +
      "\" telefonoOficina =\"" + telefonoOficina +
      "\" telefonoFax =\"" + telefonoFax +
        ((tipo==null) ? "" : "\" tipo =\"C" + tipo.getId()) +

        ((sector==null) ? "" : "\" sector =\"C" + sector.getId()) +

      "\" numeroEmpleado =\"" + numeroEmpleado +
      "\" ingresosAnuales =\"" + ingresosAnuales +
      "\" paginaWeb =\"" + paginaWeb +
      "\" direccion =\"" + direccion +
      "\" direccionFacturacion =\"" + direccionFacturacion +
      "\" codigoPostal =\"" + codigoPostal +
      "\" ciudad =\"" + ciudad +
      "\" pais =\"" + pais +
      "\" estado =\"" + estado +
      "\" correoE =\"" + correoE +
      "\" descripcion =\"" + descripcion +
      "\" comentarios =\"" + comentarios +
        ((respCuenta==null) ? "" : "\" respCuenta =\"C" + respCuenta.getId()) +

      "\" ultimaModificacion =\"" + ultimaModificacion +
      "\" fechaCreacion =\"" + fechaCreacion +

        "'/>";
    }

}